turtle
模組Turtle
是 Python 中內建的一個圖形模組,特別適合用來教學,幫助初學者理解圖形的繪製邏輯。透過 turtle
,你可以控制一隻「海龜」在畫布上移動、旋轉,並繪製各種形狀。這個模組非常適合學習如何處理座標系、循環結構以及函數。
turtle
的安裝Turtle
是 Python 內建的模組,無需額外安裝。只要有 Python 環境,便可以直接使用。
import turtle
首先,我們需要創建一個畫布,並控制海龜在上面繪圖。以下範例展示了如何讓海龜前進和轉彎。
import turtle
# 創建一隻海龜
t = turtle.Turtle()
# 移動海龜
t.forward(100) # 前進 100 像素
t.right(90) # 右轉 90 度
t.forward(100) # 繼續前進 100 像素
# 結束圖形
turtle.done()
這段代碼會在畫布上畫出兩條相互垂直的直線。forward()
方法讓海龜前進,而 right()
方法則控制海龜的旋轉。
forward(distance)
:讓海龜向前移動指定的距離。backward(distance)
:讓海龜向後移動指定的距離。right(angle)
:讓海龜向右旋轉指定的角度(度數)。left(angle)
:讓海龜向左旋轉指定的角度(度數)。penup()
:讓海龜抬起筆,移動時不會畫圖。pendown()
:讓海龜放下筆,移動時會畫圖。可以自定義畫筆的顏色、寬度等屬性。
範例:
import turtle
t = turtle.Turtle()
# 設置畫筆顏色和寬度
t.pensize(3)
t.pencolor("blue")
# 繪製正方形
for _ in range(4):
t.forward(100)
t.right(90)
turtle.done()
這段程式碼將繪製一個藍色的正方形,每條邊長為 100 像素,畫筆寬度為 3。
我們可以使用 for
迴圈來繪製不同的多邊形,例如三角形、正方形、五邊形等。
範例:繪製五邊形
import turtle
t = turtle.Turtle()
# 繪製五邊形
for _ in range(5):
t.forward(100)
t.right(72) # 360 / 5 = 72 度
turtle.done()
這段程式碼通過迴圈讓海龜繪製出一個五邊形。五邊形的內角總和為 360 度,因此每次旋轉 72 度即可繪製出完整的圖形。
可以使用 circle()
方法來讓海龜繪製圓形。
範例:
import turtle
t = turtle.Turtle()
# 繪製半徑為 50 的圓
t.circle(50)
turtle.done()
這段代碼讓海龜繪製一個半徑為 50 像素的圓形。
Python 的 turtle
模組可以結合遞迴技術來繪製更複雜的圖形,例如分形。
範例:繪製分形樹
import turtle
t = turtle.Turtle()
t.left(90) # 初始方向向上
t.speed(1)
# 定義繪製樹的遞迴函數
def draw_tree(branch_length):
if branch_length > 5:
t.forward(branch_length)
t.right(20)
draw_tree(branch_length - 15) # 繪製右子樹
t.left(40)
draw_tree(branch_length - 15) # 繪製左子樹
t.right(20)
t.backward(branch_length)
# 繪製主幹和樹
draw_tree(100)
turtle.done()
這段程式碼繪製了一棵分形樹,使用遞迴來模擬每個分支的分裂。
可以使用 begin_fill()
和 end_fill()
方法來自動填充封閉區域的顏色。
範例:填充正方形
import turtle
t = turtle.Turtle()
# 設置填充顏色
t.fillcolor("yellow")
# 開始填充
t.begin_fill()
# 繪製正方形
for _ in range(4):
t.forward(100)
t.right(90)
# 結束填充
t.end_fill()
turtle.done()
這段代碼將繪製一個填充為黃色的正方形。
可以使用 speed()
方法來調整海龜的移動速度。速度範圍從 1(最慢)到 10(最快),也可以使用 "fastest"
、"fast"
、"normal"
、"slow"
、"slowest"
這些值。
範例:
import turtle
t = turtle.Turtle()
t.speed("fastest") # 設置為最快速度
# 繪製一個快速的圓
t.circle(100)
turtle.done()
Python 的 turtle
模組是一個非常有趣的工具,適合用來學習圖形編程和數學概念。通過基本的操作指令和畫筆屬性的調整,我們可以創建簡單或複雜的圖形。對於初學者來說,turtle
不僅提供了編程練習的機會,還幫助理解座標、循環結構、遞迴等概念。